home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / biz / dbase / MUIVideo_211a.lha / MUIVideo / MUITapes / ARexx / groesster_platz.rexx < prev    next >
OS/2 REXX Batch file  |  1997-01-08  |  3KB  |  131 lines

  1. /*
  2.  *  groester_platz.rexx
  3.  *
  4.  *  Sucht die Cassette, auf der noch am meisten Platz ist.
  5.  *  Dazu werden sowohl die Daten aus MUIVideo, als auch
  6.  *  aus MUITapes herangezogen. Ist eine Cassette in
  7.  *  MUITapes unbekannt, so wird eine Bandlänge von 0 min
  8.  *  angenommen. Daher ist auf diesem Band nichts mehr frei.
  9.  *
  10.  *  ACHTUNG: Dieses Script nimmt an, das die Cassetten-
  11.  *           nummern dreistellig, mit führenden Nullen
  12.  *           sind! Ggf. muß das Script geändert werden.
  13.  *
  14.  *  $VER: differenz.rexx V1.1 (07.01.97)
  15.  *  Copyright by Christoph Kirsch
  16.  *
  17.  */
  18.  
  19. options results
  20.  
  21. address MUIVIDEO.1            /* MUIVideo fragen ... */
  22.  
  23. /*sleep*/
  24.  
  25. count                         /* ...Wieviele Filme in der Liste sind. */
  26. afilme = result
  27.  
  28. cmax = 0                      /* Variable für höchste Cassettennummer */
  29.  
  30. gauge 0 open                  /* Gauge auf und auf 0 */
  31.  
  32. do i=0 to afilme-1
  33.   gauge i*100/afilme
  34.   getquick i CASSETTE         /* Cassettennummer abfragen */
  35.   c = result
  36.   if c<'A' then do            /* numerisch? */
  37.     if c>cmax then cmax = c   /* Größte Cassettennummer feststellen */
  38.     end
  39. end
  40.  
  41. gauge 0                       /* Gauge wieder auf 0 */
  42.  
  43. do i=0 to cmax                /* Array für Spielzeiten initialisieren */
  44.   gauge i*100/cmax
  45.   n.i = 0
  46. end
  47.  
  48. n = 0
  49. a = 0
  50.  
  51. gauge 0                       /* Gauge wieder auf 0 */
  52.  
  53. do i=0 to afilme-1            /* Die Liste der Filme durchgehen */
  54.  
  55.   gauge i*100/afilme
  56.  
  57.   getquick i CASSETTE         /* Cassettennummer erfragen */
  58.   c = result
  59.   getquick i LAENGE           /* Filmlänge erfragen */
  60.   l = result
  61.   getquick i GESCHWINDIGKEIT  /* Bandgeschwindigkeit erfragen */
  62.   g = result
  63.  
  64.   a = strip(c,'L','0')        /* Führenden Nullen abschneiden */
  65.  
  66.   if c < 'A' then do
  67.     if g = 0 then do
  68.       n.a = n.a + l
  69.       end
  70.     else do
  71.       n.a = n.a + l/2
  72.       end
  73.     end
  74.  
  75. end
  76.  
  77. gauge 0
  78. wake
  79.  
  80. address MUITAPES.1            /* Jetzt mit Daten in MUITapes vergleichen */
  81.  
  82. maxfree  = 0
  83. freetape = 0
  84. tapelen  = 0
  85.  
  86. do i=1 to cmax
  87.  
  88.   address muivideo.1
  89.   gauge i*100/cmax
  90.   address muitapes.1
  91.  
  92.   p = length(i)
  93.   tape = overlay(i,'000',4-p)
  94.  
  95.   findtape tape               /* Ist das Band bekannt? */
  96.   x = result
  97.  
  98.   if x = "-1" then do         /* wenn noch nicht vorhanden ... */
  99.     free = 0 - n.i            /* ... von einer vollen Cassette ausgehen */
  100.     l = 0
  101.     end
  102.   else do
  103.     gototape x                /* Band auswählen */
  104.     get LAENGE                /* Bandlänge auslesen */
  105.     r = result
  106.     if r ~= "-1" then do      /* wenn keine Original-Cassette, dann ... */
  107.       l = value(r)
  108.       free = l - n.i          /* freien Platz berechnen */
  109.       end
  110.     else do                   /* wenn Original-Cassette, dann ... */
  111.       free = 0                /* ist die Cassette voll! */
  112.       end
  113.     end
  114.  
  115.   if free > maxfree then do   /* wenn mehr Platz als bisher */
  116.     maxfree  = free           /* Platz und Nummer merken */
  117.     freetape = i
  118.     tapelen  = l
  119.     end
  120.  
  121. end
  122.  
  123. address MUIVIDEO.1            /* MUIVideo zur Anzeige benutzen */
  124.  
  125. gauge 0 close
  126.  
  127. text = """" || 'Cassette = ' || freetape || '|Länge = ' || tapelen || '|davon frei : ' || maxfree || """"
  128.  
  129. requestnotify text
  130.  
  131.